package com.nb.hdj.util;

import com.nb.hdj.baseClass.CreateDriverBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;

/**
 * @Description: implements IRetryAnalyzer接口。该类的作用是设定失败的用例重跑需要重新运行的次数，设定一个运行次数，设定一个最大执行次数，当运行次数超过最大执行次数的时候，说明重跑完成
 * @Author: hedongjia
 * @Date: 2021/11/26 上午10:42
 * @Version: v1.0
 */
public class TestCaseRetry implements IRetryAnalyzer {
    private static final Logger logger = LoggerFactory.getLogger(TestCaseRetry.class);
    //当前正在进行的重试次数
    public static int currentCount = 1;
    //允许重试的最大次数
    private int maxCount = 2;

    /**
     *
     * @param iTestResult
     * @return 如果返回为true的话，则执行retry
     */
    @Override
    public boolean retry(ITestResult iTestResult) {
        logger.info("当前重试次数是【" + currentCount + "】");
        if (currentCount <= maxCount) {
            logger.info("当前测试方法【" + iTestResult.getName() + "】执行失败，进入失败用例重试模式，正在进行第【" + currentCount + "】次重试");
            currentCount++;
            return true;
        }
        return false;
    }
}
